
import {Pipe, PipeTransform} from '@angular/core';

/**
 * 优惠券是否可编辑
 * 状态为草稿、审核不通过时，可全部编辑
 * 状态为审核通过、进行中时、（名称、备注、发放总量（此时右侧会显示已经领取的总数）、前端展示、可领取时间（如果状态是进行中，则“可领取开始时间”就不能再改了）、使用说明、适用商品整体都可以编辑；
 * 1：审核通过；2：进行中；3：已结束；4：已停止；5：草稿；6：待审核；7：审核不通过；
 * value 
 * exponent
 */
@Pipe({
  name: 'sencondCouponEditStatus'
})
export class SencondCouponEditStatusPipe implements PipeTransform {
  transform(value: any, exponent?: any): any {
    if (value && value?.status) {
      // 草稿和审核不通过都可编辑
      if ([5, 7].includes(value?.status)) {
        return false
      }

      // 审核通过和进行中、只可编辑个别字段
      if ([1, 2].includes(value?.status) && exponent) {
        return false
      }

      return true;
    } else {
      return false;
    }
  }
}

/**
 * 优惠券 状态
 * ----------------------------------------------------------------
 */
export const sencondCouponStatusArr = [
  {value: 1, label: '审核通过', color: '#008000'},
  {value: 2, label: '进行中', color: '#ff9900'},
  {value: 3, label: '已结束', color: '#bfbfbf'},
  {value: 4, label: '已停止', color: '#bfbfbf'},
  {value: 5, label: '草稿', color: '#bfbfbf'},
  {value: 6, label: '待审核', color: '#909399'},
  {value: 7, label: '审核不通过', color: '#bfbfbf'}
];
@Pipe({
  name: 'sencondCouponStatus'
})
export class SencondCouponStatusPipe implements PipeTransform {
  transform(value: any, type: any) {
    let tempObj: any = sencondCouponStatusArr.find((item: any) => item.value === value);
    if (type === 'label') {
      return tempObj?.label || '-';
    } else {
      return tempObj?.color || '#909399';
    }
  }
}

/**
 * 用户优惠券 状态
 * ----------------------------------------------------------------
 */
export const userCouponStatusArr = [
  {value: 1, label: '待使用', color: '#909399'},
  {value: 2, label: '售后中', color: '#909399'},
  {value: 3, label: '已过期', color: '#909399'},
  {value: 4, label: '已使用', color: '#909399'},
  {value: 5, label: '强制停止', color: '#909399'}
];
@Pipe({
  name: 'userCouponStatus'
})
export class UserCouponStatusPipe implements PipeTransform {
  transform(value: any, type: string) {
    let tempObj: any = userCouponStatusArr.find((item: any) => item.value === value);
    if (type === 'label') {
      return tempObj?.label || '-';
    } else {
      return tempObj?.color || '#909399';
    }
  }
}

/**
 * 直降促销 记录
 * 订单状态：0-有效、1-无效、2-待付款、3-待审核、4-审核不通过、5-审核通过、6-排队发货、7-待发货、8-待收货（已发货）、9-交易完成、10-支付超时、11-客服取消、12-客户取消、13-售后中、14-全部退货
 * value 
 * exponent
 */
export const sencondDescentStatusArrs = [
  {value: 0, label: '有效', color: '#333333'},
  {value: 1, label: '无效', color: '#333333'},
  {value: 2, label: '待付款', color: '#ff0000'},
  {value: 3, label: '待审核', color: '#ff9900'},
  {value: 4, label: '审核不通过', color: '#999999'},
  {value: 5, label: '审核通过', color: '#008000'},
  {value: 6, label: '排队发货', color: '#ff9900'},
  {value: 7, label: '待发货', color: '#333333'},
  {value: 8, label: '待收货（已发货）', color: '#333333'},
  {value: 9, label: '交易完成', color: '#008000'},
  {value: 10, label: '支付超时', color: '#ff0000'},
  {value: 11, label: '客服取消', color: '#ff0000'},
  {value: 12, label: '客户取消', color: '#ff0000'},
  {value: 13, label: '售后中', color: '#ff9900'},
  {value: 14, label: '全部退货', color: '#ff0000'},
  {value: 15, label: '部分被抢', color: '#FF0000'}
];
@Pipe({
  name: 'sencondDescentStatus'
})
export class sencondDescentStatusPipe implements PipeTransform {
  transform(value: any, type: string) {
    let tempObj: any = sencondDescentStatusArrs.find((item: any) => item.value === value);
    if (type === 'label') {
      return tempObj?.label || '-';
    } else {
      return tempObj?.color || '#909399';
    }
  }
}

/**
 * 直降促销 List Status
 * 1、未开始 2、进行中 3、已结束 4、已停止 5 草稿 6、待审核 7、审核不通过
 */
export const sencondDescentArrs = [
  {value: 1, label: '未开始', color: '#008000'},
  {value: 2, label: '进行中', color: '#FF9900'},
  {value: 3, label: '已结束', color: '#888888'},
  {value: 4, label: '已停止', color: '#888888'},
  {value: 5, label: '草稿', color: '#888888'},
  {value: 6, label: '待审核', color: '#888888'},
  {value: 7, label: '审核不通过', color: '#888888'}
];
@Pipe({
  name: 'sencondDescentListStatus'
})
export class sencondDescentListStatusPipe implements PipeTransform {
  transform(value: any, type: string) {
    let tempObj: any = sencondDescentArrs.find((item: any) => item.value === value);
    if (type === 'label') {
      return tempObj?.label || '-';
    } else {
      return tempObj?.color || '#909399';
    }
  }
}

/**
 * 活动类型：1、满减型 2、折扣型 3、多件折扣 4、多件立减 5、阶梯满减 6、阶梯折扣
 * value 
 * exponent
 */
@Pipe({ name: 'activityTypeStatus' })
export class ActivityTypeStatusPipe implements PipeTransform {
  transform(value: any, exponent?: any): any {
    switch (value) {
      case 1:
        return '满减';
      case 2:
        return '满折';
      case 3:
        return '多件折扣';
      case 4:
        return '多件立减';
      case 5:
        return '阶梯满减';
      case 6:
        return '阶梯折扣';
      default:
        return '-';
    }
  }
}

/**
 * 二手商品状态
 * ----------------------------------------------------------------
 */
export const sencondStatusOptions = [
  {value: 0, label: '上架中', color: '#008000'},
  {value: 1, label: '待上架', color: '#8e9aa9'},
  {value: 2, label: '已售出', color: '#8e9aa9'},
  {value: 3, label: '售后中', color: '#FF0000'},
  {value: 4, label: '已冻结', color: '#FF6600'},
  {value: 5, label: '草稿', color: '#FF6600'},
  {value: 6, label: '审核不通过', color: '#faad14'},
  {value: 7, label: '待审核', color: '#8e9aa9'}
];
@Pipe({
  name: 'sencondGoodStatus'
})
export class SencondGoodStatusPipe implements PipeTransform {
  transform(value: any, type: string) {
    let tempObj: any = sencondStatusOptions.find((item: any) => item.value === value);
    if (type === 'label') {
      return tempObj?.label || '-';
    } else {
      return tempObj?.color || '#909399';
    }
  }
}
